<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>函数</title>
</head>

<body>
    <h1>函数</h1>
</body>
<script>
    //定义函数 
    //1.无参
    // function fun(){
    //     console.log("这是第二个函数")
    // }
    // fun();
    //2.无参
    // function add(num1,num2){
    //     var result=num1+num2
    //     console.log(result)
    // }
    // add(1,3)
    //3.有返回值
    // function add1(num1,num2){
    // var result=num1+num2
    // return result
    // }
    // console.log(add1(1,5))
    //4.匿名函数 用变量名来接收
    // var a=function(){
    //     alert("我是一个匿名函数")
    // }
    // a()
    //5.对象中的函数
    //    var person = {
    //     name: "zhangsan",
    //     age: 18,
    //     sayHello: function () {
    //         console.log(name + " hello")
    //     }
    // }
    //6.this对象
    //创建一个全局变量name
    // var name = "全局变量name";

    //创建一个函数
    // function fun() {
    // console.log(this.name);
    // }

    //创建一个对象
    // var obj = {
    //     name: "孙悟空",
    //     sayName: fun
    // };

    //我们希望调用obj.sayName()时可以输出obj的名字而不是全局变量name的名字
    // obj.sayName();
    //工厂方法创建对象
    // function createPerson(name,age){
    //     var obj=new Object();
    //     obj.name=name;
    //     obj.age=age;
    //     obj.sayName=function(){
    //         console.log(this.name);
    //     }
    //     return obj;
    // }
    // for(var i=1 ; i<=100 ;i++){
    //     console.log("person"+i,i);
    // }
    // console.log(createPerson(":aa",1))

    //构造函数创建对象
    // function Person(name,age){
    //     this.name=name;
    //     this.age=age;
    //     this.sayname=function(){
    //         console.log(this.name);
    //     }
    // }
    // var person1=new Person("孙悟空",15)
    // var person2=new Person("猪八戒",12)
    // console.log(person1)
    //instanceof
    // console.log(person1 instanceof Person)


    //原型对象

    // 使用构造函数来创建对象
    function Person(name, age) {
        // 设置对象的属性
        this.name = name;
        this.age = age;
    }

    // 在Person类的原型对象中添加方法
    Person.prototype.sayName = function () {
        console.log(this.name);
    };

    var person1 = new Person("孙悟空", 18);
    var person2 = new Person("猪八戒", 19);
    var person3 = new Person("沙和尚", 20);

    person1.sayName();
    person2.sayName();
    person3.sayName();







</script>

</html>